/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 2; tab-width: 8 -*- */
/*
 * gtractionbuttons.h
 * Copyright (C) Jonas Hagmar 2009 <gnotterdev@gmail.com>
 * 
 * gtractionbuttons.h is free software: you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the
 * Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * gtractionbuttons.h is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License along
 * with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
#ifndef _GTRACTIONBUTTONS_H_
#define _GTRACTIONBUTTONS_H_

#include <gtk/gtkeventbox.h>

G_BEGIN_DECLS

#define GTR_TYPE_ACTION_BUTTONS             (gtr_action_buttons_get_type ())
#define GTR_ACTION_BUTTONS(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTR_TYPE_ACTION_BUTTONS, GtrActionButtons))
#define GTR_ACTION_BUTTONS_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST ((klass), GTR_TYPE_ACTION_BUTTONS, GtrActionButtonsClass))
#define GTR_IS_ACTION_BUTTONS(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTR_TYPE_ACTION_BUTTONS))
#define GTR_IS_ACTION_BUTTONS_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), GTR_TYPE_ACTION_BUTTONS))
#define GTR_ACTION_BUTTONS_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj), GTR_TYPE_ACTION_BUTTONS, GtrActionButtonsClass))

typedef struct _GtrActionButtonsClass GtrActionButtonsClass;
typedef struct _GtrActionButtons GtrActionButtons;

struct _GtrActionButtonsClass
{
  GtkEventBoxClass parent_class;

  void (* reply)  (GtrActionButtons *button);
  void (* retweet)  (GtrActionButtons *button);
};

struct _GtrActionButtons
{
  GtkEventBox parent_instance;
};

typedef enum
{
  GTR_AB_REPLY = 1 << 0,
  GTR_AB_RETWEET = 1 << 1
} GtrActionButtonsMask;

GType gtr_action_buttons_get_type (void) G_GNUC_CONST;
GtkWidget *gtr_action_buttons_new (void);
void gtr_action_buttons_set_id (GtrActionButtons *ab, gchar const *id);
gchar const *gtr_action_buttons_get_id (GtrActionButtons *ab);
void gtr_action_buttons_set_text (GtrActionButtons *ab, gchar const *text);
gchar const *gtr_action_buttons_get_text (GtrActionButtons *ab);
void gtr_action_buttons_set_user_screen_name (GtrActionButtons *ab, gchar const *user_screen_name);
gchar const *gtr_action_buttons_get_user_screen_name (GtrActionButtons *ab);
void gtr_action_buttons_set_data (GtrActionButtons *ab, gpointer data);
gpointer gtr_action_buttons_get_data (GtrActionButtons *ab);
void gtr_action_buttons_set_mask (GtrActionButtons *ab, GtrActionButtonsMask mask);
void gtr_action_buttons_reveal (GtrActionButtons *ab);
void gtr_action_buttons_schedule_cloak (GtrActionButtons *ab);

G_END_DECLS

#endif /* _GTRACTIONBUTTONS_H_ */
